namespace Microsoft.ServiceModel.Samples.Discovery
{
    using System;
    using System.Xml;
    using System.Xml.Serialization;
    using System.ServiceModel;
    using Microsoft.ServiceModel.Samples.Discovery.Protocol;

    [XmlType(Namespace = ProtocolStrings.Namespace)]
    [XmlRoot(ProtocolStrings.AppSequenceElement, 
        Namespace = ProtocolStrings.Namespace)]
    public class AppSequence
    {
        long instanceIdField;
        string sequenceIdField;
        long messageNumberField;
        XmlAttribute[] anyAttrField;

        [XmlAttribute]
        public long InstanceId
        {
            get
            {
                return this.instanceIdField;
            }
            set
            {
                this.instanceIdField = value;
            }
        }

        [XmlAttribute(DataType = "anyURI")]
        public string SequenceId
        {
            get
            {
                return this.sequenceIdField;
            }
            set
            {
                this.sequenceIdField = value;
            }
        }

        [XmlAttribute]
        public long MessageNumber
        {
            get
            {
                return this.messageNumberField;
            }
            set
            {
                this.messageNumberField = value;
            }
        }

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttributes
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }
    }
}
